home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr35 / bgfaxb01.zip / BGFAX.TXT < prev    next >
Text File  |  1993-06-19  |  32KB  |  684 lines

  1. BGFAX 1.0 BETA 01  SAT 19 JUN 93
  2. --------------------------------
  3.  
  4. I have been getting reports from all over about ways people have been
  5. getting BGFAX to work with certain FidoNet front end mailers.  See the
  6. included text file BGFAX.HLP to find setup hints for BGFAX and your mailer.
  7. Thanks to all the people that have included reports.
  8.  
  9. BGFAX seems to be getting more stable as time moves on, so I have decided
  10. to move the test into the beta phase.  Just like the alpha test, this is a
  11. public beta test, and all can run and test the software.
  12.  
  13. Additions/Changes to BGFAX since the last Alpha version:
  14.  
  15. 1. The previous alpha versions would sometimes hang requiring a user to
  16.    press <Esc> to manaully exit BGFAX if something odd happened during a
  17.    connection (or if your front end mailer or modem accidently passes
  18.    control of a non-fax call to BGFAX).  Now, BGFAX attempts to handle
  19.    these events better.  A timeout will occur if no data is received from
  20.    the modem within 60 seconds.  Also, if a "RING" or "NO CARRIER" happens
  21.    before those 60 seconds, it will force an exit of BGFAX as well.
  22.  
  23. 2. On errorlevel 4 exits previously, the fax file name was not being passed
  24.    in any manner.  Now, when a fax is received, the program will exit with an
  25.    errorlevel of 4 (as before) but it will also construct a DOFAX.BAT file
  26.    which calls EXEFAX.BAT file with a single parameter (the fax file name).
  27.  
  28.    Here is an example DOFAX.BAT file constructed by BGFAX:
  29.  
  30.        C:\BGFAX\EXEFAX FAX0007.QFX
  31.  
  32.    In your EXEFAX.BAT file, you can try something like
  33.  
  34.        @ECHO OFF
  35.        PRINTFAX %BGFAX%\%1 9PIN.QLP
  36.  
  37. 3. Some people wanted BGFAX (in front end mode) to create DOBBS.BAT files
  38.    just like FD and other frontend programs.  The EC
  39.    = entry before held the
  40.    "string" that was to be inserted as the 4th parameter on the DOBBS.BAT
  41.    file if an error correcting session was established.  The following is
  42.    what happens if you get a CONNECT 14400/ARQ and EC=/RELIABLE
  43.  
  44.        C:\BGFAX\EXEBBS 14400 1 876 /RELIABLE
  45.  
  46.    However, now, if you set EC=<ECHO> the program will echo the exact rest
  47.    of the connect string as the 4th parameter (like FD), like so:
  48.  
  49.        C:\BGFAX\EXEBBS 14440 1 876 /ARQ
  50.  
  51. 4. Some people liked the old method of passing parameters to BGFAX in rear
  52.    end mode, and some people don't like having to use the BGFAX environment
  53.    variable for rear end mode, so I combinded this wishes into one:
  54.  
  55.    BGFAX rearend mode can be started in the usual way (ie., BGFAX /FAX or
  56.    BGFAX /FCON) as long as the BGFAX= environment variable is set as the
  57.    BGFAX.CNF file is still rear.
  58.  
  59.    If you do something like this though ...  (OPTIONAL)
  60.  
  61.    BGFAX /FAX C:\BGFAX 1 Z
  62.  
  63.    BGFAX rear end mode will start WITHOUT USING THE BGFAX= ENVIRONMENT
  64.    VARIBLE OR BGFAX.CNF CONFIGURATION FILE.
  65.  
  66.    First parameter is /FAX or /FCON
  67.  
  68.    Second parameter is the directory to store faxes in
  69.  
  70.    Third parameter is 1-4, the com port number, place a bang after the com
  71.    port number if you use a ZyXEL (like so: 2!).
  72.  
  73.    Forth parameter is fax type, (Z or Q only)
  74.  
  75.    AN OPTIONAL FIFTH PARAMETER ALSO EXISTS ... you can specify a one to
  76.    three digit node number if you want multiple nodes to receive faxes in
  77.    the same directory.  Example:
  78.  
  79.    BGFAX /FAX C:\BGFAX 1 Z 12
  80.  
  81.    Would cause BGFAX to make a BGFAX12.LOG file rather than the normal
  82.    BGFAX.LOG file, and will also allow incoming faxes at the same time from
  83.    multiple nodes.  (THIS IS ONLY AVAILABLE IN REAR END MODE).
  84.  
  85. 5. Elapsed time was being garbled during parts of the day (as well as the
  86.    midnight crossover).  Fixed.
  87.  
  88. 6. A slight cosmetic change has been made so that people with monochrome
  89.    monitors can see what's happening in the state window.
  90.  
  91. 7. After looking at the source code, it looks like Alpha 11 shouldn't have
  92.    worked with ZyXEL modems as the "!" port modifer wasn't being treated
  93.    successfully.  I'll have to get my ZyXEL friend to test out this beta for
  94.    me tomorrow.
  95.  
  96. BGFAX 1.0 ALPHA 11  THU 10 JUN 93
  97. ---------------------------------
  98.  
  99. Miscellaneous comments and news regarding BGFAX ...
  100.  
  101. a. I've heard reports that Frontdoor 2.20 Beta works with BGFAX
  102. b. The latest beta of GT Power software works with BGFAX
  103. c. I've heard reports that Dutchie 3.0 works with BGFAX (I've never heard
  104.    of this software before though).
  105. d. It seems that putting "+FCLASS=0" in an init string on a Supra causes it
  106.    to reset to factory settings.  +FCLASS=0 is always default anyway, so it
  107.    really isn't necessary to have this on any init string.
  108. e. Some modes don't seem to like multiple fax commands stacked the way I
  109.    listed commands in my sample config files before, the ";" semicolon can
  110.    be used to seperate fax commands on modems such as the Practical (PPI).
  111.  
  112. 1. Numerous people have reported problems regarding environment settings by
  113.    BGFAX.  Because of that, BGFAX now longer attempts to set any environment
  114.    variables.  Now, like FRONTDOOR, it will create a DOBBS.BAT file that is in
  115.    the following format:
  116.  
  117.      C:\BGFAX\EXEBBS 9600 1 783 /RELIABLE
  118.  
  119.    You will need to make a batch file called EXEBBS.BAT (in the BGFAX
  120.    directory) that loads your BBS software like so:
  121.  
  122.      @echo off
  123.      gt1706 %key% /mn /f:%1:%2
  124.      bbs
  125.  
  126.    My BBS software (GT Power) requires it be passed the DCE speed and the
  127.    COM port ... DCE speed is %1, COM port is %2, minutes until the next
  128.    event is %3, and the error-free connection string is %4.
  129.  
  130. 2. Since the BGFAX.LOG contains detailed and debug information that most
  131.    sysops aren't really too interested in (except for curiosity), BGFAX now
  132.    builds a second log file (FAXIN.LOG) in the BGFAX directory that contains a
  133.    single, one-lined entry for every fax received.  Here's a sample:
  134.  
  135. Date  Time  ET    Bytes   Rate  Filename     Remote Fax ID        Pgs  Notes
  136. -------------------------------------------------------------------------------
  137. 06-10 16:22 00:48   31629  9600 FAX0180.QFX  BJ GUILLOT/HOUSTON1    1  Finished
  138. 06-10 16:29 00:55   26654  9600 FAX0181.QFX  BJ GUILLOT/HOUSTON1    2  Finished
  139.  
  140. 3. In frontend mode, added the following commands while waiting for calls
  141.          Ctrl-A ... Force answer (send answer string to modem)
  142.          Ctrl-R ... Reset counters
  143.  
  144. 4. Fixed problem with elapsed time counter.
  145.  
  146. BGFAX 1.0 ALPHA 10  SUN 06 JUN 93
  147. ---------------------------------
  148.  
  149. 1. Found a major bug in REAR END mode.  Alpha 9 apparently was hanging up
  150.    whenever it loaded.  No longer does this.
  151.  
  152. 2. Many people were reporting they were getting "Unable to set xxxx
  153.    environment variable" because they had too little environment space.  Now,
  154.    BGFAX will beep twice and delay for a second or so if the environment space
  155.    is less than 100 bytes.  This will probably change in the future.  If you
  156.    are getting this, you will need to increase your environment size.  You do
  157.    this in your CONFIG.SYS with the SHELL command, like so:
  158.  
  159.       SHELL=C:\COMMAND.COM /E:xxxx /P
  160.  
  161.    Where "xxxx" is the number of bytes in your environment (I suggest using
  162.    something like 1024).  The /P means that you want the AUTOEXEC.BAT file to
  163.    execute.  (If you don't put it on there, your system will just sit at the
  164.    C:\> prompt after it reboots!)
  165.  
  166. 3. It seems that there are many variations on the "EOL" symbol that marks
  167.    the end of each "scan line" on a fax page.  I have already identified at
  168.    least three types of EOLs.  Does anyone know why there are SO MANY???  I
  169.    thought there was only supposed to be one, but that doesn't seem the case,
  170.    unless I'm misunderstanding something (which is a good possibility).  I
  171.    still need to do a little work on this.
  172.  
  173. 4. May have been a problem with COM4 addresses.  Fixed.
  174.  
  175. BGFAX 1.0 ALPHA 09  THU 03 JUN 93
  176. ---------------------------------
  177.  
  178. THE FORMAT OF THE BGFAX.CNF CONFIG FILE HAS CHANGED, PLEASE TAKE A LOOK AT
  179. THE INCLUDED BGFAX.CNF FILE!!!  Also, for people running in REAR END mode,
  180. only one command line parameter is now required (/FAX or /FCON, the port
  181. and fax type will be determined from the config file).  (The new config
  182. file allows user selectable errorlevels for events now).
  183.  
  184. Also, when working with BGFAX rear end mode, now only one parameter is
  185. needed (the /FAX or /FCON) the fax type and port are now taken out of the
  186. BGFAX.CNF file (you really only need the PO= and FT= entries though if you
  187. will be running in rear end mode.)
  188.  
  189. The errorlevels have changed around, too ... if you had been running a
  190. previous version, you'll have to change your batch files around.
  191.  
  192.        4 - fax was received
  193.        3 - local logon
  194.        2 - data call
  195.        1 - restart batch file
  196.  
  197. 1. I found out BGFAX was not working with COM3 and COM4.  Fixed now.
  198.  
  199. 2. For people using BGFAX in frontend mode, the number of rings to answer
  200.    on is now configurable.  I'll probably stick to answering on one ring
  201.    myself, but some people may want to use 2 rings (or more).  It should be
  202.    noted that some older fax cards (like "The Complete Fax" and its
  203.    cousins, "The Complete Communicator", etc.) won't send out a fax CNG
  204.    tone until after the second ring.  Also, areas that have Caller ID, will
  205.    have the caller ID information logged into the BGFAX.LOG if you specify
  206.    to answer on the second ring if your modem allows this.  (I belive some
  207.    Rockwell based modems, such as the Supra, will use Caller ID when the
  208.    command AT#CID=1 is used in one of the initialization strings.)
  209.  
  210. 3. I finally figured out how to calculate the scan lines per page of a fax
  211.    image.  The numbers will be displayed on the screen when a fax is begin
  212.    received, and the proper values will be placed the in QFX file header (if
  213.    you choose to use the QFX format.)  "lct" on the display will mean "scan
  214.    line count."  Different fax softwares seem to send the EOL in different
  215.    ways, and I've tried to account for the two ways I've seen so far.
  216.  
  217. 4. The calculation of the cps speed has changed somewhat.  It will now
  218.    calculate the average cps for the current page rather than the
  219.    instatanteous cps for the current block of data being written to disk.
  220.  
  221. BGFAX 1.0 ALPHA 08  SUN 30 MAY 93
  222. ---------------------------------
  223.  
  224. BGFAX alpha 7 was compressed with the EXE compressor DIET 1.44, and it
  225. seemed that 486 systems didn't like my compressed EXE that much, so all
  226. future versions will remain uncompressed.
  227.  
  228. 1. Fixed a bug that caused system to hang when null remote fax ID string
  229.    received.  (Alpha 7 would get stuck in an infinite loop trying to delete
  230.    spaces from a non-existant string.)
  231.  
  232. 2. The log will now indicate whether the fax document was incomplete.
  233.    Sometimes a +FHNG:102 occurs (which indicates an error), but the fax
  234.    document still goes through.  However, using another method, it is possible
  235.    to determine if all pages were in fact received.
  236.  
  237. 3. Added "cps" to display screen while receiving a fax.  The "cps" reading
  238.    measures only the actual data transmitted during a fax page stream, not the
  239.    actually handshaking, etc.  On a 9600 bps fax receiption, my Supra was
  240.    registering a cps rate of 1240+, which seems a little higher than I thought
  241.    it should be getting, so my routines might not calculate it right.
  242.  
  243. BGFAX 1.0 ALPHA 07  FRI 28 MAY 93
  244. ---------------------------------
  245.  
  246. A few people have had trouble getting BGFAX to work with PC Board 15 Beta
  247. and Intermail in "rear end" mode.  I've had reports that confirm that BGFAX
  248. works with these two products, but sometimes people have trouble because
  249. they forget to put the important "+FCR=1" string somewhere in the PC Board or
  250. Intermail initialization strings.  +FCR=1 enables fax receiption, and even if
  251. you put the +FAA=1 (which enables adaptive answering), some fax modems
  252. (like the Supra) will not take a fax without +FCR=1.
  253.  
  254. 1. I wasn't correcting identifying all types of ARQ strings during Frontend
  255.    mode.  Now, any CONNECT string with the following strings will be
  256.    treated as ARQ (this is after 'CONNECT' is stripped):
  257.  
  258.       ARQ  REL  42  EC  M
  259.  
  260. 2. I have made the program look more professional.  (Many cosmetic changes
  261.    during the actual BBS call/Fax call process.)
  262.  
  263. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  264.  
  265.    For those of you not on my Internet mailing list, here is a copy of a
  266.    progress report sent to all of them regarding BGFAX Alpha 6.
  267.  
  268. BGFAX ALPHA 6 ... PROGRESS REPORT ... GOOD NEWS AFTER THIS 1st PARAGRAPH
  269.  
  270. Well, I spent all day today trying to test BGFAX rear end mode in a real
  271. operation environment.  I tried messing with Binkley, but couldn't even
  272. get the thing to recognize a RING.  (Remember I have no experience with
  273. FidoNet what-so-ever, so I know nothing about this mailers.)  I tried my
  274. hand at Frontdoor again, and was finally successful at getting it to exit
  275. with an errorlevel on FAX calls, BUT ... Frontdoor takes its sweet time
  276. just sitting there twiddling its thumbs, and before it even exits to BGFAX,
  277. the remote fax modem will already give up because its too long a wait!  I
  278. know someone who is a Frontdoor beta tester and will try to see if he can
  279. get a message to the author so that we can fix this.  (This is the non-
  280. commerical version of Frontdoor, by the way.)
  281.  
  282. Anyway, I got a lead from something about a trial version of the commerical
  283. Intermail.  I found a copy of IM221APR.ZIP on a local BBS in Houston.  It's
  284. a trial version that expires 4/30/93, so I had to set my clock back to use
  285. it, BUT ... I got it to work with BGFAX successfully!!!  (The fellow that
  286. told me about Intermail says the version he had was IM221JUN.ZIP that
  287. doesn't expire until the end of June, so maybe we can find that one.)
  288.  
  289. Intermail looks VERY similar to Frontdoor.  Can someone tell me if these
  290. programs are related in any way?
  291.  
  292. Anyway, here is the relevent info for setting up BGFAX in rear end mode
  293. with the trial version of Intermail that expires 4/30/93.  I configured it
  294. to work with my SupraFax Modem.  (It's the v.32bis external, 1.7B4 ROMs).
  295.  
  296. IMSETUP.EXE ... Modem -> Advanced setup -> Command strings
  297.  
  298. Init-1     ATZ|
  299. Init-2     AT&K3+FCLASS=0+FCR=1|             (+FCR=1 is VERY important)
  300. Init-3     AT+FLID="TRANQUILITY BASE"|
  301.  
  302. IMSETUP.EXE ... Modem -> Advanced setup -> Answer control
  303.  
  304. Manual answer    Yes
  305. Force answer     AT+FAA=1A|  (that's all that will fit, I know the ZyXEL
  306.                              modem likes AT+FAA=1 A| with a space, so
  307.                              ZyXEL owners may want to add +FAA=1 to one
  308.                              of the init strings and just use ATA|)
  309.  
  310. IMSETUP.EXE ... Modem -> Advanced setup -> Connect strings
  311.  
  312. You will see a list of 14 or so preconfigured connect strings, press
  313. <INSERT> to add one, and set it up like so:
  314.  
  315.   Connect Message                          Speed  EC  BBSexit  Terminate
  316.  
  317.   FAX                                      19200  N   0        123
  318.  
  319. -------------------------------------------------------------------------
  320.  
  321. "FAX" is the string my SupraFax Modem returns when it hears the Fax CNG
  322. tone from the remote modem/machine.  I belive the ZyXEL returns "CONNECT
  323. FAX", and some modems return "CONNECT 9600/FAX", etc.  You will have to
  324. find out which your modem uses.
  325.  
  326. Notice that "BBSexit" is equal to ZERO.  It should stay like that!  Notice
  327. that "Terminate" is equal to "123".  This number can be set to whatever you
  328. want as long as its NOT ZERO (and any other value Intermail is picky
  329. about).  I set it so that when Intermail receives the string "FAX" it will
  330. IMMEDIATELY exit with an errorlevel of 123.  (Notice IMMEDIATELY, it
  331. doesn't twiddle around like Frontdoor).
  332.  
  333. Here's the sample testing batch file I used for BGFAX, IMBATCH.BAT:
  334.  
  335. @echo off
  336. im
  337. if errorlevel 123 goto fax
  338. goto end
  339. :fax
  340.   bgfax 1 z /fax
  341. :end
  342. imbatch
  343.  
  344. Notice I don't include any BBS handling errorlevel instructions.  You'll
  345. have to do that yourself (it's all configured in "Connect strings").
  346.  
  347. By the way, I tested this both with and without the BNU fossil driver
  348. loaded.  (Note that BGFAX does not use a fossil driver.  Also note that
  349. Intermail can use one, but doesn't have to as it has its own SIO
  350. communications routines built-in as well.)
  351.  
  352. ------------------------------------------------------------------------
  353.  
  354. Just for kicks, I decided to test Intermail and BGFAX rear end mode with
  355. the /FCON parameter.  Some fax modems do not transmit any kind of "FAX" or
  356. "CONNECT FAX" warning messages, only the "+FCON" (which means the faxes
  357. have passed first base in their mating game.)  I changed my Intermail setup
  358. string from "FAX" to "+FCON" to do this test.  I also changed my
  359. IMBATCH.BAT file line that read "bgfax 1 z /fax" to "bgfax 1 z /fcon".  The
  360. first fax call attempt I made JUST BARELY made it.  In fact, the fax DCE
  361. downshifted from 9600 to 7200 because my computer (286/8 mhz) was too slow.
  362. I thought that was a miracle.  It should have hung up!  Anyway, I tried
  363. again, and it seemed the disk cache had kicked in, and the transfer went
  364. through.  (Note that I still received the "Computer too slow" message from
  365. BGFAX).  So, you still may want to play around with the trial version of
  366. Intermail.
  367.  
  368. End of Progress Report for 5/26/93.
  369.  
  370. BGFAX 1.0 ALPHA 06  WED 26 MAY 93
  371. ---------------------------------
  372.  
  373. POSSIBLE VERY GOOD NEWS --- THIS RELEASE SUPPORTS "REAR END" OPERATION.
  374.  
  375. I'll list the minor changes first, then discuss "rear end" mode after.
  376.  
  377. 1. A user requested I check for an actual "RING" response from the modem
  378.    because some users don't have the RI (ring indicator) capability that most
  379.    users do that BGFAX uses to determine when to send the answer string to the
  380.    modem.  Anyway, I hope this helps those few that don't have RI.
  381.  
  382. 2. Since Fido mailers can't be rear ended into, I took the "q.,FidoNet"
  383.    line out of the BGFAX.CNF file.  Only one "crash" entry is now available,
  384.    and that is for GT Power sysops, the "CQ,GT Crash call line".  If you were
  385.    running BGFAX alpha 5, just delete the "Q.,FidoNet" line.
  386.  
  387. Now, here come the major changes.  If you want to run BGFAX in frontend
  388. mode, you don't even have to read the following.  However, if you want to
  389. run it in rear end mode, you gotta read through my pitiful docs some more.
  390. I'm typing this at near-midnight hours, so I'm probably going to type
  391. incoherently after a few minutes.
  392.  
  393. First the bad news.  I couldn't get Frontdoor to work on my system so that
  394. it would exit out with an errorlevel if it determined the incoming fax was
  395. a fax call.  However, I hope you will be able to get Frontdoor, or Binkley,
  396. or whatever frontend system you use to do this.  (If you can, drop me a
  397. note so I can try to duplicate it).  So, in order to test the BGFAX "rear
  398. end", I had to write my own psuedo-front end.  This psuedo-front end, BGFFF
  399. can be configured to exit with an errorlevel of 80 when it detects a string
  400. with "FAX" in it (such as "FAX", "CONNECT FAX", "CONNECT 9600/FAX", etc.)
  401. or when it encounters a "+FCON" string.  You specify the choice.
  402.  
  403. Why am I telling you this?  Because, before you go start to play with
  404. Frontdoor, you might want to try to get the BGFAX rear end working with
  405. BGFFF first.  If it works, then try playing with Frontdoor.
  406.  
  407. BGFFF is very simple to use.  It has three command line parameters.
  408.  
  409.     BGFFF 1 38400 /FAX     or     BGFFF 1 38400 /FCON
  410.  
  411. The first parameter is the com port, the second is the DTE rate you want to
  412. lock it at.  The third can be either "/FAX" or "/FCON".  If you specify
  413. /FAX, BGFFF will exit with an errorlevel of 80 when it encounters the "FAX"
  414. string.  Try this one first.  (See the included FFF.BAT file).  After that,
  415. change the FFF.BAT file so that you use /FCON in the two places where /FAX
  416. is specified.  In /FCON mode, BGFFF will wait until it receives a +FCON
  417. from the port.  Make a note of which methods work and don't work.  If
  418. you're lucky, both methods will.  You can get read of the FFF.BAT and
  419. BGFFF.EXE after these tests.  If both pass, you have a pretty good chance
  420. of being able to use rear end mode of BGFAX in a Fido mailer.
  421.  
  422. To run BGFAX is rear end mode, it requires three parameters as well.  A
  423. BGFAX.CNF FILE IS NOT REQUIRED FOR REAR END OPERATION.  Recall that no
  424. command line parameters are required to run BGFAX in front end mode.
  425.  
  426.     BGFAX 1 Z /FAX
  427.  
  428. That means use COM1, ZyXEL Z-FAX format fax files, and the /FAX means that
  429. Frontdoor/Binkley/etc. was able to detect the "FAX" string from your modem
  430. properly.
  431.  
  432. If you are using a ZyXEL modem, you will have to put an e-point after the
  433. COM port, like so:  BGFAX 1! Z /FAX   this would tell BGFAX *not* to shift
  434. DTE to 19200 after the +FCON message is received.  (However, ZyXEL users
  435. can already use ZyXEL's RCVFAX program to do this, so it's not really
  436. necessary to use BGFAX unless you just want something to do for fun.)
  437.  
  438. If your Fido frontend is unable to detect the "FAX"-like string, but will
  439. detect the +FCON message (by the way, some FaxModems do not even return a
  440. "FAX"-like string, only the "+FCON"), you will have to use the /FCON
  441. paramateer on BGFAX like so:   BGFAX 1 Z /FCON
  442.  
  443. If your Frontend and modem will allow you to use /FAX parameter on BGFAX,
  444. USE IT.  AVOID HAVING TO USE THE /FCON PARAMETER.  However, some people
  445. will have to use it.
  446.  
  447. Remember, BGFFF is only for testing BGFAX's rear end capability on your
  448. modem.  It is not needed after you use it for the initial testing.
  449.  
  450. Again, if you actually get BGFAX working in rear end mode with something
  451. besides BGFFF, *please* let me know.  Send me your batch files, config
  452. files from Frontdoor, etc., and let me know what kind of modem you use.
  453.  
  454. Special note.  I had this file ARJed up and all ready to go on the FTP when
  455. I tried a few last minute tests.  Turned out, the rear end mode wasn't
  456. working too hot on my 2400 S/R faxmodem, so I changed a few routines
  457. around.  What's quite interesting though is that my 2400 modem doesn't
  458. issue a "FAX" command, so it would be logical to think you would have to
  459. use the /FCON switch.  Well, turns out that BGFAX works best with my 2400
  460. S/R fax modem when used with the /FAX switch.  WEIRD, HUH?  Oh well, this
  461. might just be something you have to try, too.
  462.  
  463. By the way, these BBS systems on the other continent should also carry
  464. BGFAX in the future as a downloadable file.
  465.  
  466. The Owl's Nest (Dutch Supra Distr) Support BBS has 3 numbers;
  467.  
  468. (31)-(0)2155-10921   (Also fidonet node 2:512/39)
  469. (31)-(0)2155-12571   Node 2
  470. (31)-(0)2155-28096   Node 3
  471.  
  472. All three with Supra V.32bis
  473.  
  474. BGFAX 1.0 ALPHA 05  SAT 22 MAY 93
  475. ---------------------------------
  476.  
  477. 1. Fixed some problems with faxes having single trashed lines.  Seems I was
  478.    writing 2049 bytes to the file when I only had 2048 bytes in my disk write
  479.    buffer.  Oops.
  480.  
  481. 2. NOTE FOR ZYXEL USERS: You must change the DTE rate in the BGFAX.CNF file
  482.    so that you have a e-point (bang, "!") after it.
  483.  
  484.       1
  485.       38400!
  486.       ATZ
  487.  
  488.    The e-point will make BGFAX *not* shift the DTE to 19200 when fax
  489.    receiption begins.  Seems ZyXEL conveniently forgot to do this.  This is
  490.    actually a better idea than what CCITT recommends doing (why, oh why did
  491.    they want the DTE to be shifted to 19200) and that's why ZyXEL users
  492.    have such an easy time with fax receiption.  The other guys, like me,
  493.    don't have ZyXEL's though, so don't add the "!" if you don't.
  494.  
  495. 3. If one of the three modem initialization strings are less than two
  496.    characters, the string will not be sent to the modem.  (If the line just
  497.    read "AT", it would not get sent).
  498.  
  499. 4. If you don't want your users to have to hit <Esc> to enter the BBS, ie.,
  500.    you want to it load automatically, change the line in the BGFAX.CNF file
  501.    that says "Press <esc> to blah blah blah", so that it says "<load>" as the
  502.    first thing on the line.
  503.  
  504. 5. Look at the included BGFAX.CNF file.  A line has been added ... see:
  505.  
  506.      Please wait loading the bulletin board.
  507.      /RELIABLE                                        <-- new line
  508.      2400
  509.      We're sorry, but we do not accept calls below 2400.
  510.  
  511.    The new line can contain anything you want.  What happens is when a data
  512.    call is detected, if it is an error correcting modem (ie., it is
  513.    something like CONNECT 2400/ARQ, /REL, or 2400/EC), it will set the
  514.    environment variable called ARQ to whatever is on the line.  So, in the
  515.    case of "CONNECT 14400/ARQ", the following environment gets set:
  516.  
  517.         DCE=14400
  518.         ARQ=/RELIABLE
  519.  
  520. 6. Another new environment variable is now set.  The "EVT" variable will
  521.    be set to the number of minutes (minus three) until the next event.
  522.    This is set on both local logins and data calls.
  523.  
  524. BGFAX 1.0 ALPHA 04  FRI 21 MAY 93
  525. ---------------------------------
  526.  
  527. BGFAX alpha 1 through 3 were non-public releases.  This is a public
  528. release.  Send all bug reports to ... (my name is B.J. Guillot) ...
  529.  
  530. Internet: st1r8@jetson.uh.edu
  531. GT/Power: Net/Node 001/040
  532.    Voice: 713-893-9320
  533. Data/Fax: 713-893-9124
  534.  
  535. I am a terrible doc writer.  You'll believe me by the time you finish
  536. reading this, if you can make it that far.  :)
  537.  
  538. BGFAX is a program designed for BBS operators that have Class 2 compliant
  539. fax modems that support adaptive answering.  The only modems that I've been
  540. able to test it on so far include the SupraFax 14.4, Practical Periperhals,
  541. and an el-cheapo Computer City generic 2400 data, 9600 S/R fax modem.  It
  542. seems to work on all of these.
  543.  
  544. DISCLAIMER: I'm not responsible for ANYTHING negative that happens to you
  545. or your computer system or your business, etc., etc., etc.
  546.  
  547. The program does not require a FOSSIL driver as it has communications
  548. routines built into it.  Yes, it supports the FIFO buffer of the 16550
  549. UART chip.
  550.  
  551. Here is how the program works:
  552.  
  553. It is to be ran as a "frontend" system to your BBS.  When it starts, it
  554. will initialize the modem and wait for the modem to ring.  When it does
  555. ring, it will send the modem answer string to the modem.  It the modem
  556. determines it is a data call, it will ask the user to press <ESC> to log
  557. onto the system.  It will also look for "CQ" or "q." and exit with a
  558. specific errorlevel if one of those strings is encountered.  I am not sure
  559. as it the "q." determination is really meaningful, though.
  560.  
  561. If your modem detects a fax call, BGFAX will attempt to take the fax.
  562. Please note that depending on the type of modem you have and the way it
  563. determines adaptive answering, human faxes (ie., non fax-modems) may not
  564. understand how to send a fax to you.  This seems to be the case with my
  565. Uncle.  He tried to send me a fax the other day on his fax machine, but he
  566. waits until he hears a fax tone on the other end before pressing his
  567. "START" button.  So, my Supra never heard the CNG tones from his machine
  568. until after the Supra modem decided it was already a data call.  I've heard
  569. that some modems will shift into FAX mode anytime a CNG tone is heard, but
  570. I just wanted to tell you this in case you had problems.  (To solve the
  571. problem, I told my Uncle to hit the "START" key as soon as he heard the
  572. line start ringing instead of waiting for my modem to start sending tones).
  573.  
  574. YOU NEED TO SET THE BGFAX ENVIRONMENT VARIABLE.
  575.  
  576. It's easy, just say SET BGFAX=C:\BGFAX or some other directory in a batch
  577. file that runs before you run the batch file that runs BGFAX (ie., in your
  578. AUTOEXEC.BAT).
  579.  
  580. All incoming faxes will be received in that directory.  BGFAX.LOG will
  581. reside in that directory, and BGFAX.CNF must exist in that directory.
  582.  
  583. BGFAX.CNF is the configuration file for BGFAX.  Here is the file I use with
  584. my Supra FaxModem:
  585.  
  586. -----<cut>-----
  587. 1
  588. 38400
  589. ATZ
  590. ATH0M1%G1%E0N1\N3&K3+FCLASS=0+FCR=1
  591. AT+FLID="TRANQUILITY_BASE"
  592. AT+FAA=1 A
  593. Please press the [Esc] key to load Tranquility Base.
  594. Loading the bulletin board.  Please wait.
  595. 2400
  596. Calls are not accepted below 2400 bps.  Sorry.
  597. Z
  598. q.,FidoNet crash calls
  599. CQ,GT crash calls
  600. event=07:00
  601. event=00:15
  602. -----<cut>-----
  603.  
  604. Line 1 is the com port number.  Line 2 is the DTE rate you use for your BBS
  605. software.  The next three lines are initialization string lines.  My Supra
  606. seemed to like it with all commands compressed on one line, but I noticed
  607. the Practicial Peripherals was peculiarly picky about packed strings, so
  608. one fax command had to be one a seperate line.  Anyway, if you don't need
  609. three lines for initialization, just put an "AT" on the line.  You'll
  610. notice my second initialization string has a bunch of garbage in it,
  611. "H0M1%G1%E0N1\N3&K3".  These are just commands I use when I want the modem
  612. to be able to answer calls.  You can probably take all that out.  The +F
  613. things are fax commands and should be left alone, except for the +FLID=
  614. command which sets your FAX ID.
  615.  
  616. The line with "2400" by itself lets BGFAX know what the lowest DCE speed
  617. you allow on your BBS.  Set it to "300" if you want all calls.
  618.  
  619. The line with "Z" by itself means you want BGFAX to store fax files with
  620. the ZyXEL ZFAX header record.  (So you can use the public domain ZFAX
  621. program, available by anonymous FTP to view incoming faxes).  The only
  622. other valid entry for this line is a single "Q" which means you want BGFAX
  623. to store the incoming faxes with the Smith Micro Software's QuickLink II
  624. Fax format header, so you view faxes with QL II's "VIEWFAX.EXE" file which
  625. comes with quite a few fax modems (but not all).  Please note that the QL
  626. II header record has a field for "scan lines" and I don't know what to put
  627. in it, so it's being fudged and this may create some side effects, but it
  628. seems that viewing the fax still works fine.
  629.  
  630. Notice there are two "event" lines.  You can have up to 20 of them.  The
  631. first event is Event #0 and will cause BGFAX to exit with an errorlevel of
  632. 50 when the time is encounted for it.  The second event is Event #1 and
  633. will exit with errorlevel 51, etc.  You can have no events by taking out
  634. the event lines.  So far, these "event=" lines are the only flexible lines
  635. in the config file that can be removed without causing BGFAX problems.
  636.  
  637. Here's the batch file I use to run BGFAX:
  638.  
  639. -----<cut>-----
  640. @echo off
  641. bgfax
  642. if errorlevel 255 bbs
  643. if errorlevel 101 gtmail
  644. if errorlevel 100 fidomail
  645. if errorlevel 90 goto faxrcvd
  646. if errorlevel 51 midmaint
  647. if errorlevel 50 maint
  648. if errorlevel 20 goto datacall
  649. if errorlevel 10 goto datacall
  650. goto end
  651. :faxrcvd
  652.   echo fax received as [%fax%]
  653.   echo you can put a printing batch here if you want
  654.   bbs
  655. :datacall
  656.   echo data call received dce=[%dce%]
  657.   %gt% %key% /mn /f:%dce%:1
  658.   bbs
  659. :end
  660. -----<cut>-----
  661.  
  662. Here's a rundown of the errorlevels:
  663.  
  664.   255 ... bad connect, no carrier, bad fax, etc., rerun BBS.BAT
  665.   101 ... mailer software signature #2
  666.   100 ... mailer software signature #1
  667.    90 ... at least a one page fax received, option of going and doing
  668.           something with the fax, filename stored in FAX environment
  669.           varible maintained by BGFAX
  670. 69-50 ... Events #19 through Events #0
  671.    20 ... data call, actual DCE carrier rate set by DCE environment varible
  672.           maintained by BGFAX
  673.    10 ... local logon, handle however your software requires
  674. <no errorlevel> ... terminated by user or something terrible happens :)
  675.  
  676. If sometimes it appears BGFAX gets locked up during a fax receiption,
  677. pressing the <ESC> key should quit BGFAX and leave a DEBUG line that has
  678. whatever was in the modem receive buffer at the time.
  679.  
  680. ------- In the future, I hope to have an alpha out that will allow the use
  681. of another frontend that runs BGFAX when a fax is already ready to come in
  682. on the line.  This version must be run as a frontend, though!
  683.  
  684.